.root {
  --label-lh-xs: 16px;
  --label-lh-sm: 20px;
  --label-lh-md: 24px;
  --label-lh-lg: 30px;
  --label-lh-xl: 36px;
  --label-lh: var(--label-lh-sm);

  &[data-label-position='left'] {
    --label-order: 1;
    --label-offset-end: var(--mantine-spacing-sm);
    --label-offset-start: 0;
  }

  &[data-label-position='right'] {
    --label-order: 2;
    --label-offset-end: 0;
    --label-offset-start: var(--mantine-spacing-sm);
  }
}

.body {
  -webkit-tap-highlight-color: transparent;
  display: flex;
}

.labelWrapper {
  --label-cursor: var(--mantine-cursor-type);

  -webkit-tap-highlight-color: transparent;
  display: inline-flex;
  flex-direction: column;
  font-size: var(--label-fz, var(--mantine-font-size-sm));
  line-height: var(--label-lh);
  cursor: var(--label-cursor);
  order: var(--label-order);

  fieldset:disabled &,
  &[data-disabled] {
    --label-cursor: not-allowed;
  }
}

.label {
  cursor: var(--label-cursor);
  color: inherit;
  padding-inline-start: var(--label-offset-start);
  padding-inline-end: var(--label-offset-end);

  fieldset:disabled &,
  &:where([data-disabled]) {
    color: var(--mantine-color-disabled-color);
  }
}

.description {
  margin-top: calc(var(--mantine-spacing-xs) / 2);
  padding-inline-start: var(--label-offset-start);
  padding-inline-end: var(--label-offset-end);
  cursor: default;
}

.error {
  margin-top: calc(var(--mantine-spacing-xs) / 2);
  padding-inline-start: var(--label-offset-start);
  padding-inline-end: var(--label-offset-end);
}
